package ProjectoX;

import java.awt.Rectangle;

public class Disparo extends PowerUpMovil {

	protected String [] NombresSpriteMov;
	protected String [] NombresSpriteMovLarge;
	private int posBase;
	private boolean puedeAccionar = true;
	
	public Disparo (Nivel N, Posicion P, int Fila, int Columna) {
		super (N, P, Fila, Columna);
		AltoIm = 16;
		AnchoIm = 16;
		NombresSpriteMov = new String [] {"PowerUp/bullet1.png", "PowerUp/bullet2.png",};
		NombresSpriteMovLarge = new String [] {"PowerUp/bullet1_iz.png", "PowerUp/bullet2_iz.png",};
		setSpriteName(NombresSpriteMovLarge);
		setFrameSpeed(6);
		GetMov().setMovVertical(POWERUP_SPEED);
	}

	public void accion(Mario m) {

	}

	public void puedeAccionar() {
		puedeAccionar = true;
	}
	
	public void colision (Enemigo E) {
		if (puedeAccionar) {
			puedeAccionar = false;
			E.remove();
			remove();
		}

	}
	
	public void colision (Componente C) {
		Rectangle r1 = C.getBounds();
		Rectangle Area = r1.intersection(this.getBounds());
		if ((Area.getHeight()<=8)) {
			if ((Area.getWidth()>8)) {
				if (Area.getY()<C.getPos().getY()+30){
					if (Mov.getVelY()>0){
						posBase = Pos.getY();
						invertirSalto();
					}			
				}
			else remove();
			}
		}
		else {
			remove();
		}				
	}

	private void invertirSalto() {
		GetMov().setMovVertical(-GetMov().getVelY());	
	}
	
	public void actuar(){
		super.actuar();
		Pos.setX(Pos.getX()+GetMov().getVelX());
		Pos.setY(Pos.getY()+GetMov().getVelY());
		if (Pos.getY()>800) {
			remove();
		}
		if ((Pos.getY()<(posBase-(AltoIm*3))))
			invertirSalto();
		
	}

	public void colision(Mario M) {

	}

	public void colision(MarioGrande m) {
		
	}
	
	public void colision(MarioDisparo m) {
		
	}
	
}


	


